package com.zhongge.schedule;

import com.zhongge.mapper.HolidayMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * @ClassName HolidayStatusUpdateScheduler
 * @Description TODO
 * @Author zhongge
 * @Version 1.0
 */
@Component// 让 Spring 容器管理
public class HolidayStatusUpdateScheduler {
    @Autowired
    private HolidayMapper holidayMapper; // 注入Mapper

    /**
     * 定时任务：每分钟执行一次，检查并更新假期状态
     * cron表达式："0 * * * * ?" 表示每分钟的第0秒执行
     * cron 表达式有 6 个位置（依次对应）：秒、分、时、日、月、周
     * 0在从后前的第五个所以是每分钟修改一次
     */
    @Scheduled(cron = "0 * * * * ?")
    public void updateHolidayStatuses() {
        try {
            // 调用Mapper执行更新
            int updatedCount = holidayMapper.updateStateToCompletedAutomatically();

            if (updatedCount > 0) {
                System.out.println("定时任务执行成功，共更新了 {} 条假期记录的状态为【已完成】。");
            } else {
                System.out.println("定时任务执行完成，没有找到需要更新状态的假期记录。");
            }
        } catch (Exception e) {
            System.out.println("定时任务执行失败：更新假期状态时发生异常。"+e);
        }
    }
}
